5.3.3 APPX Application Design Manual

+ Chapter 1-1: Overview of Application Design
+ Chapter 1-2: Getting Started
+ Chapter 1-3: Data Dictionary
+ Chapter 1-4: Understanding Process Design
+ Chapter 1-5: Interprocess Communication
+ Chapter 1-6: Customizing Your Application
+ Chapter 1-7: The Documentation Facility
+ Chapter 1-8: Application Design Tools
+ Chapter 2-1: Data Dictionary Overview
+ Chapter 2-2: Data Dictionary Concepts
+ Chapter 2-3: Domains
+ Chapter 2-4: Files and Fields
+ Chapter 2-5: Work Fields
+ Chapter 3-1: Overview of APPX Processes
+ Chapter 3-2: Getting Started
+ Chapter 3-3: Process Definition
+ Chapter 3-4: Menu Processes
+ Chapter 3-5: Job Processes
+ Chapter 3-6: Input Processes
+ Chapter 3-7: Output Processes
+ Chapter 3-8: Update Processes
+ Chapter 3-9: Query Processes
+ Chapter 3-10: Inquiry Processes
+ Chapter 3-11: Status Processes
+ Chapter 3-12: Subroutine Processes
+ Chapter 3-13: Table Processes
+ Chapter 3-14: Automatic and Optional Children
+ Chapter 3-15: Using the Image Editor
+ Chapter 3-16: Using GUI Features of the Image Editor
+ Chapter 3-17: Using Event Points
+ Chapter 4-1: ILF Integration
+ Chapter 4-2: True/False Status Indicators
+ Chapter 4-3: Specifying Statements
+ Chapter 4-4: The ILF Editor
+ Chapter 4-5: The Appx ILF Debugger
- Chapter 4-6: ILF Keyword Reference
+ Chapter 4-7: Predefined Fields
+ Chapter 4-8: Runtime Subroutine's and Predefined Processes
+ Chapter 4-9: Appx Chart Director API

Chapter 4-6: ILF Keyword Reference

PUSH


The PUSH statement saves a field or record value on an internally maintained stack for the indicated field or record. The structure of the statement is:

(1) T/F execution conditions
(2) Application ID
(3) Field name or predefined field
(4) Occurrence (constant/index)
(5) Data item type (FIELD, RECORD, DEFAULT FIELD, DEFAULT RECORD, ORIGINAL FIELD, ORIGINAL RECORD) 

A distinct stack is associated with each field name and with each file name.

The PUSH statement is used to add field and record values to a stack.

The POP statement is used to retrieve field and record values from a stack.

The stack has the internal structure of a LIFO list, i.e. the last value pushed onto the stack for a field or record is the first value popped from the stack. There is no predefined limit as to how many field or record values may be pushed onto a stack.

The value of the source field or record is not changed when a PUSH statement is executed.

You may execute a PUSH statement for a specific field or file more than once before you execute a POP statement to retrieve a value from the stack. Each time that you execute a PUSH statement, the value of the referenced field or record is "pushed" onto the top of the stack associated with that field or file. Each time that you execute a POP statement, the next value is retrieved from the stack of the referenced field or record, stored as the current value of the referenced field or record, and removed from the top of the stack.

The contents of predefined fields can also be saved using the PUSH statement. However, it is invalid to use the PUSH statement for predefined fields that are non-modifiable, since the POP command is invalid for those fields.

The scope of a stack is the same as the scope of the associated field or file. For example, if the scope of the referenced field is RELATED, then the scope of the associated stack will also be RELATED.

The Data item type specification identifies which field value or record is to be pushed onto the stack. If FIELD or RECORD is specified, then the current value of the field or record is pushed onto the stack. If DEFAULT FIELD or DEFAULT RECORD is specified, then the default value of the field or record is pushed onto the stack. If ORIGINAL FIELD or ORIGINAL RECORD is specified, then the original value of the field or record is pushed onto the stack. ORIGINAL FIELD and ORIGINAL RECORD may only be specified if the referenced field is a field in the PCF or if the referenced file is the PCF of the currently executing process.

Since there is only one stack for each field name and one stack for each file name, FIELD, DEFAULT FIELD, and ORIGINAL FIELD all push the indicated value onto a common (shared) stack for the specified field name and RECORD, DEFAULT RECORD, and ORIGINAL RECORD all push the indicated record buffer onto a common (shared) stack for the specified record (file) name.

Multiple occurrences of a field also share a common stack.

A sub-string field and a synonym field each have their own stack since they have field names that are distinct from the field that they are derived from.

The following example shows how PUSH and POP can be used to swap the values of occurrences 1 and 2 of a field.

One use for PUSH and POP is to load virtual keystrokes (user options) into a stack, and have them executed automatically and sequentially.

Application Design Manual                                         "Powered by Appx Software"

1159

©2006 By APPX Software, Inc. All Rights Reserved